package Example.singleton;

import annoations.NotRecommend;
import annoations.ThreadSafe;

/**
 * 懒汉模式
 * 单例的实例，在第一次使用的时候进行创建
 *
 * 添加 synchronized 后，线程是安全的
 * 但并不推荐，性能开销太大
 *
 * @author Wang Renlei
 * @Date 2020/7/1
 */
@ThreadSafe
@NotRecommend
public class SingletonExample3 {

    //私有构造方法
    private SingletonExample3() {

    }

    //私有单例对象
    private static SingletonExample3 instance = null;

    //静态的工程方法
    public synchronized static SingletonExample3 getInstance() {
        if (instance == null) {
            instance = new SingletonExample3();
        }

        return instance;
    }

}
